package org.tekifriker.domain.strategy.repository;

import org.springframework.stereotype.Repository;
import org.tekifriker.domain.strategy.model.entity.StrategyAwardEntity;
import org.tekifriker.domain.strategy.model.entity.StrategyEntity;
import org.tekifriker.domain.strategy.model.entity.StrategyRuleEntity;
import org.tekifriker.domain.strategy.model.valobj.RuleTreeVO;
import org.tekifriker.domain.strategy.model.valobj.RuleWeightVO;
import org.tekifriker.domain.strategy.model.valobj.StrategyAwardRuleModelVO;
import org.tekifriker.domain.strategy.model.valobj.StrategyAwardStockKeyVO;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @author Fuzhengwei bugstack.cn @小傅哥
 * @description 策略服务仓储接口
 * @create 2023-12-23 09:33
 */

public interface IStrategyRepository {

    List<StrategyAwardEntity> queryStrategyAwardList(Long strategyId);

    Integer getStrategyAwardAssemble(String key, Integer rateKey);


    Integer getStrategyAwardAssemble(Long strategyId, Integer rateKey);

    int getRateRange(Long strategyId);

    StrategyEntity queryStrategyEntityByStrategyId(Long strategyId);

    StrategyRuleEntity queryStrategyRule(Long strategyId, String ruleModel);


    void storeStrategyAwardSearchRateTable(String Key, int size, Map<Integer, Integer> shuffleStrategyAwardSearchRateTable);
}
